﻿#define _CRT_SECURE_NO_WARNINGS 1


//struct test1
//{
//	char c1;
//	int i1;
//	char c2;
//};
//
//struct test2
//{
//	char c1;
//	char c2;
//	int i1;
//};
//
//struct test3
//{
//	double d;
//	char c;
//	int i;
//};
//
//struct test4
//{
//	double d1;
//	struct test3;
//	int i1;
//};
//
//int main()
//{
//	printf("%zd\n", sizeof(struct test1));
//	printf("%zd\n", sizeof(struct test2));
//	printf("%zd\n", sizeof(struct test3));
//	printf("%zd\n", sizeof(struct test4));
//	return 0;
//}


//#include <stdio.h>
//#pragma pack(1)
//
//struct test5
//{
//	char c1;
//	int i;
//	char c2;
//};
//
//struct test6
//{
//	char c1;
//	char c2;
//	int i;
//};
//
//int main()
//{
//	printf("%zd\n", sizeof(struct test5));
//	printf("%zd\n", sizeof(struct test6));
//	return 0;
//}


//#include <stdio.h>

//struct S
//{
//	int arr[1000];
//	int num;
//};

//struct S s = { {0,1,2,3,4,5},1000 };
//
//void print1(struct S s)
//{
//	printf("%d\n", s.num);
//}
//
//void print2(struct S* ps)
//{
//	printf("%d\n", ps->num);
//}

//int main()
//{
//	print1(s);
//	print2(&s);
//	return 0;
//}

//struct test
//{
//	int a : 2;
//	int b : 4;
//	int c : 8;
//	int d : 20;
//};
//
//int main()
//{
//	printf("%zd\n", sizeof(struct test));
//	return 0;
//}


#include <stdio.h>
//⼀个例⼦ 
struct S
{
	char a : 3;
	char b : 4;
	char c : 5;
	char d : 4;
};

int main()
{
	struct S s = { 0 };

	s.a = 10;
	s.b = 12;
	s.c = 3;
	s.d = 4;
	return 0;
}
